#include <bits/stdc++.h>
#define ll long long
#define pr pair<ll,ll>
using namespace std;
const ll N = 2e5+10;
ll n;
ll lowbit(ll x)
{
return x&(-x);
}
struct point
{
ll x,y;
}arr[N];
ll tr[N][2];
ll l[N];
void add(ll x,ll val)
{
while(x<=n)
{
tr[x][0]++;
tr[x][1]+=val;
x+=lowbit(x);
}
}
ll get(ll x,ll k)
{
ll res=0;
while(x)
{
res+=tr[x][k];
x-=lowbit(x);
}
return res;
}
bool cmp(point a,point b)
{
return a.x<b.x;
}
void solve()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>arr[i].x;
for(int i=1;i<=n;i++)
{
cin>>arr[i].y;
l[i]=arr[i].y;
}
sort(arr+1,arr+1+n,cmp);
sort(l+1,l+1+n);
int m=unique(l+1,l+1+n)-l-1;
ll ans=0;
for(int i=1;i<=n;i++)
{
ll x=lower_bound(l+1,l+1+n,arr[i].y)-l;
ans=ans+arr[i].x*get(x,0)-get(x,1);
add(x,arr[i].x);
}
cout<<ans<<'\n';
}
int main()
{
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
ll tt = 1;
//cin >> tt ;
while( tt-- ) solve() ;
return 0 ;
}
174. Dungeon Game | 127. Word Ladder |
123. Best Time to Buy and Sell Stock III | 85. Maximal Rectangle |
84. Largest Rectangle in Histogram | 60. Permutation Sequence |
42. Trapping Rain Water | 32. Longest Valid Parentheses |
Cutting a material | Bubble Sort |
Number of triangles | AND path in a binary tree |
Factorial equations | Removal of vertices |
Happy segments | Cyclic shifts |
Zoos | Build a graph |
Almost correct bracket sequence | Count of integers |
Differences of the permutations | Doctor's Secret |
Back to School | I am Easy |
Teddy and Tweety | Partitioning binary strings |
Special sets | Smallest chosen word |
Going to office | Color the boxes |